#include <QVectorIterator>
#include <iostream>
using namespace std;
#include <QApplication>
#include <QVector>
#include <QString>
#include <QMap>
//方式二
#include <iostream>
#include <qdebug.h>
using namespace std;



int main(int argc, char *argv[])
{
	QApplication app(argc, argv);
/********************************************
 * 指定大小 QVector<int> vect(3);
 * 使用     vect[0]=1;
 *******************************************/
	QVector<int> vect0(3);
	vect0[0] = 1;
	vect0[1] = 2;
	vect0[2] = 3;
	cout<<vect0[0]<<"\t"<<vect0[1]<<"\t"<<vect0[2]<<endl;
/********************************************
 * 未定大小 QVector<int> vect;
 * 使用     vect.append(1);
 * 或者     vect<<1<<3<<5;
 *******************************************/
	QVector<int> vect1;
	vect1<<1<<3;
	vect1.append(5);
	cout<<vect1[0]<<"\t"<<vect1[1]<<"\t"<<vect1[2]<<endl;
/********************************************
 * fill(i, T)填充数据
 * at()只读查看
 * data()返回头指针
 * insert(i, T)插入
 * indexOf(i, T)查找位置
 * count(T)统计
 *******************************************/
	QVector<string> vect2;
	vect2.fill("hello", 3);
	cout<<vect2[1]<<endl;
	if(vect2.at(1)=="hello")
		cout<<"HEHE"<<endl;

	vect2.insert(2, "world");
	cout<<vect2.indexOf("world", 0)<<endl;
	cout<<vect2.contains("hello")<<endl;
	cout<<vect2.count("hello")<<endl;

/********************************************
 * 迭代器
 * hasNext()
 * next()
 * foreach(T, QVector)
 *******************************************/

	for(QVectorIterator<string> iterator(vect2); iterator.hasNext();)
		cout<<iterator.next()<<endl;
	
	foreach(string str, vect2)
		cout<<str<<endl;

	QMap<int, string> map;
	map.insert(1, "weijie");
	map[2] = "hehe";
	cout<<map[1]<<endl;
	cout<<map.value(2)<<endl;
qDebug()<<"hehe";
	
	
	return app.exec();
}
